﻿/*
创建人：龙斌
日期：2022-06-22
描述：Combox下拉
*/
(function ($) {
    //Combox下拉选择组件
    $.fn.selectCombox = function (option, param) {
        switch (typeof option) {
            case "string":
                if (option === "init") {//恢复初始化状态
                    if (document.getElementById("selCombox")) {
                        comboxDefaults.initUI(1);
                    }
                }
                else if (option === "setCombo") {
                    if (document.getElementById("selCombox")) {
                        param = $.extend({}, { Name: "" }, param);
                        comboxDefaults.comboxSearch(param.Name);
                    }
                }
                else if (option === "getValue") {
                    if (document.getElementById("selCombox")) {
                        return $("#selCombox").combobox('getValue')
                    }
                }
                else if (option === "getText") {
                    if (document.getElementById("selCombox")) {
                        return $("#selCombox").combobox('getText')
                    }
                }
                break;
            case "object":
                var strHtml = getComboHtml();
                $.parser.parse($(this).html(strHtml));
                comboxOption = $.extend({}, comboxOption, option);
                comboxDefaults.init();
                break;
            case "undefined":
                var strHtml = getComboHtml();
                $.parser.parse($(this).html(strHtml));
                comboxOption = $.extend({}, comboxOption, option);
                comboxDefaults.init();
                break;
            default:
                break;
        }
    };
    //订单html控件
    function getComboHtml(obj) {
        return "<div style='float: left;'>" +
                              "<div id='divComboxTxt' style='float: left'>" +
                              "<input id='txtCombox' class='easyui-textbox' type='text' name='MFGORDERNAME' data-options='' style='width: 150px;height: 22px' /></div>" +
                              "<div id='divComboxSelect' style='float: left'>" +
                              "<select style='width: 150px; height: 20px' id='selCombox' data-options='editable:false' class='easyui-combobox'></select>" +
                              "</div><div id='divComboxSearch' style='float: left'>" +
                              "<a id='btnComboxSearch' href='javascript:void(0)' class='easyui-linkbutton' style='height:23px' data-options=\"iconCls:\'icon-search\'\"></a>" +
                              "</div><div id='divComboxClear' style='float: left'>" +
                              "<a id='btnComboxClear' href='javascript:void(0)' class='easyui-linkbutton' data-options=\"iconCls:\'icon-cancel\'\" style='height: 20px'></a>" +
                              "</div></div>";

    }

    //combox组件默认事件
    var comboxOption = {
        param: { Name: "" }, //参数
        search: function (val) { }, //件号查询点击事件(参数为输入框数据)
        cancel: function () { }, //件号取消点击事件
        selected: function (value, text, record) { } //件号下拉选择事件（参数为选择的下拉数据ID,文本）
    };

    //定义combox下拉事件实现
    var comboxDefaults = {
        url: page.comboxUrl, //getRootPath() + "/Ashx/ZsHandler/ZSTestRunNoticeBillHandler.ashx", //后台路径
        //初始化页面
        init: function () {
            comboxDefaults.bind();
            comboxDefaults.initUI(); //初始化页面控件
            if (isNullOrWhiteSpaceStr(comboxOption.param.Name) === false) {
                comboxDefaults.productSearch(comboxOption.param.Name);
            }
        },
        //页面事件绑定
        bind: function () {
            //件号查询
            $('#btnComboxSearch').on("click", function () {
                clearMessage();
                var comboxVal = $('#txtCombox').textbox("getValue");
                if (isNullOrWhiteSpaceStr(comboxVal)) {
                    displayMessage("需输入查询条件", false);
                    return;
                }
                comboxDefaults.comboxSearch(comboxVal);
                comboxOption.search(comboxVal); //查询回调
            });
            //查询取消
            $('#btnComboxClear').on("click", function () {
                clearMessage()
                comboxDefaults.initUI(1);
                comboxOption.cancel(); //取消回调
            });
        },
        //件号查询方法
        comboxSearch: function (name) {
            $.postAjax({
                url: comboxDefaults.url,
                data: { action: page.comboxAction, Name: name },
                ajaxSuccess: function (res) { //ajax成功后  GetComboxSelect
                    if (res.Result) {
                        $('#divComboxTxt').hide();
                        $('#divComboxSelect').show();
                        $('#divComboxSearch').hide();
                        $('#divComboxClear').show();
                        //绑定下拉数据
                        $("#selCombox").combobox({
                            valueField: 'ID',
                            textField: 'NAME',
                            panelHeight: 200,
                            data: res.DBTable, //下拉数据
                            onSelect: function (record) {
                                comboxOption.selected(record.ID, record.NAME, record); //选择后回调
                            }
                        });
                    } else {
                        displayMessage(res.Message, res.Result);
                    } 
                }
            });
        },
        //初始化页面控件
        initUI: function (type) {
            //文本框、搜索按钮显示
            if (type === 1) {
                $('#txtCombox').textbox("setValue", "");
                $('#selCombox').combobox('clear');
            }
            $('#divComboxTxt').show();
            $('#divComboxSelect').hide();
            $('#divComboxSearch').show();
            $('#divComboxClear').hide();
        }
    };
    //自定义ajax（post类型）
    $.postAjax = function (param) {
        var options = {
            type: "Post",
            url: "",
            data: null,
            cashe: false,
            async: true,
            dataType: "json",
            beforeSend: function () {
                $.messager.progress({ text: '', msg: '处理中...' });
            },
            ajaxSuccess: function (data) { },
            success: function (data) {
                $.messager.progress('close');
                options.ajaxSuccess(data);
            },
            ajaxError: function () { },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                $.messager.progress('close');
                displayMessage(XMLHttpRequest.responseText, false);
                options.ajaxError();
            }
        };
        options = $.extend({}, options, param);
        $.ajax(options);
    }

})(jQuery)

//---使用方式-------
//1.界面定义 <div id="ResourceCombox"></div>
//2.添加引用 <script src="/InSiteWebApplication/Scripts/ZsJs/selectCombox.js" type="text/javascript"></script>
//3.初始化及应用
// var page = {
//    comboxUrl:getRootPath() + "/Ashx/ApsHandler/MakeCalendarHandler.ashx",//请求地址
//    comboxAction:'getResource',}//请求方法名称
//    后端查询： select xx AS ID,yy AS NAME from XXXX
//$('#ResourceCombox').selectCombox({
//    search: function () { },
//    cancel: function () { },
//    selected: function (val, text, record) {
//        $('#txtCombox').textbox('setValue', text);
//        $('#divComboxTxt').show();
//        $('#divComboxSelect').hide();
//        $('#divComboxSearch').show();
//        $('#divComboxClear').hide();
//    }
//});
